1. Field of the Invention
This invention relates generally to configuring external devices, and more particularly, to configuring a Universal Serial Bus (USB) device.
2. Description of the Related Art
The universal serial bus (USB) standard is considered by some to be an improvement over traditional serial and parallel ports for connecting peripheral devices to personal computers (PCs). The USB interface may replace a variety of serial and parallel port connectors with one standardized plug and port combination. Furthermore, the USB interface may support plug-and-play (PnP) and hot-swapping capabilities. In other words, with a USB device, a user can readily attach and detach a peripheral device without cumbersome installation and uninstallation procedures (e.g., powering down the computer, opening the computer case to install a card needed for a certain device, rebooting the computer). As a result, PnP may make it simpler for multi-player game users, business users, and notebook users, for example, to share peripheral devices.
A USB interface may have several advantages over a conventional serial port. For example, a serial port can support a data transfer speed of up to 115 kbps, the USB interface can support up to 12 Mbps. The USB interface may also provide power to its devices, and may support up to 127 devices at one time. Additionally, the USB interface is widely accepted. For example, USB connections are available for a wide range of products including, but not limited to, digital cameras, computer telephony products, speakers, disk drives, printers, mice, keyboards, and the like.
USB devices can be dynamically configured and can contain more than one configuration. However, existing applications to configure USB devices are generally platform-dependent, and thus, separate applications are typically written for each platform. For example, a configuration application written for a UNIX® platform may not execute in a WINDOWS® platform. Accordingly, programmers often write different versions of a configuration application to cover different platforms.